package com.sys.ai.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sys.common.annotation.Excel;
import com.sys.common.core.domain.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;

/**
 * 模型对象 ai_model
 *
 * @author LGY
 * @date 2025-05-08
 */
@Data
@Accessors(chain = true)
@TableName("ai_model")
@Schema(description = "模型对象")
public class AiModel extends BaseEntity implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    @Schema(description = "ID")
    private String id;

    @TableField(value = "platform_id")
    @Schema(description = "LLM提供平台id")
    private String platformId;
    /**
     * 模型名称
     */
    @Excel(name = "模型名称")
    @TableField(value = "name")
    @Schema(description = "模型名称")
    private String name;
    /**
     * 模型编码
     */
    @Excel(name = "模型编码")
    @TableField(value = "code")
    @Schema(description = "模型编码")
    private String code;
    /**
     * 供应商名称
     */
    @Excel(name = "供应商名称")
    @TableField(value = "supplier")
    @Schema(description = "供应商名称")
    private String supplier;
    /**
     * 类型
     */
    @Excel(name = "类型")
    @TableField(value = "type")
    @Schema(description = "类型")
    private Integer type;
    /**
     * 上下文长度
     */
    @Excel(name = "上下文长度")
    @TableField(value = "context_length")
    @Schema(description = "上下文长度")
    private String contextLength;
    /**
     * 状态
     */
    @Excel(name = "状态")
    @TableField(value = "status")
    @Schema(description = "状态")
    private Integer status;
    /**
     * 是否支持深度思考
     */
    @Excel(name = "是否支持深度思考")
    @TableField(value = "support_deep_thinking")
    @Schema(description = "是否支持深度思考")
    private Integer supportDeepThinking;
    /**
     * 备注
     */
    @TableField(value = "remark")
    @Schema(description = "备注")
    private String remark;

    @TableField(value = "sorts")
    @Schema(description = "排序")
    private Integer sorts;
}
